package com.gaoshin.sorma.addressbook; import android.content.Context; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import com.gaoshin.sorma.SORMA; public class PhoneView extends LinearLayout { private Phone phone; private DeleteListener deleteListener; private SORMA sorma; private EditText phoneNumberView; private EditText phoneTypeView; public PhoneView(Context context) { super(context); sorma = SORMA.getInstance(context, AddressBookContentProvider.class); setOrientation(LinearLayout.HORIZONTAL); setupPhoneTypeView(); setupPhoneNumberView(); setupDeleteButton(); } private void setupDeleteButton() { Button btn = new Button(getContext()); btn.setText("X"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { deleteListener.onDelete(v, phone); } }); addView(btn); } private void setupPhoneNumberView() { phoneNumberView = new EditText(getContext()); addView(phoneNumberView); phoneNumberView.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { phone.setNumber(phoneNumberView.getText().toString()); } }); } private void setupPhoneTypeView() { phoneTypeView = new EditText(getContext()); addView(phoneTypeView); phoneTypeView.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { phone.setType(phoneTypeView.getText().toString()); } }); } public Phone getPhone() { return phone; } public void setPhone(Phone phone) { this.phone = phone; phoneNumberView.setText(phone.getNumber()); phoneTypeView.setText(phone.getType()); } public void setOnDeleteListener(DeleteListener listener) { this.deleteListener = listener; } public static interface DeleteListener { void onDelete(View view, Phone phone); } }